AWS CodePipeline の開始オプションで使われる静的テンプレートの内容が GitHub リポジトリで公開されました

AWS CodePipeline の開始オプションで使われる静的テンプレートの内容が GitHub リポジトリで公開されました

Clock Icon2024.11.11

いわさです。

一ヶ月ほど前ですが、AWS CodePipeline を開始する時に事前提供されたテンプレートを選択出来るようになりました。それまではコンソール上で要件にあわせてパイプラインの構築を行う必要がありましたが、テンプレートを使うといくつかのお決まりのパターンが事前定義されており、すぐに開始出来るようになっています。

https://dev.classmethod.jp/articles/codepipeline-create-from-template/

このテンプレート機能はまだカスタマイズしたテンプレートなどを使うことは出来ないのですが、事前定義されたテンプレートが GitHub リポジトリで公開されたというアナウンスがありました。

https://aws.amazon.com/about-aws/whats-new/2024/11/aws-codepipeline-open-source-templates-simplified-experience/

事前定義されたテンプレートの場合、私が CI 環境として使いたかったランタイムが選択出来ないなどカスタマイズしたい点があったのですが、こちらのテンプレートをカスタマイズしてスタック作成するなどが出来そうです。

リポジトリを確認

公開リポジトリは以下となります。

https://github.com/aws/codepipeline-starter-templates

templates/cloudformationディレクトリ配下に YAML テンプレートが格納されています。これか?

DB00E62A-78DD-462E-B0F1-B2C51096BBDC.png

コンソールと比較してみたところ、一致していそうでした。
deploy-to-XXXが Deployment カテゴリのもの、ci-build-XXXが Continuous Integration でci-schedule-build-XXXが Automation のようです。

FB81A909-9721-4AA6-8A39-F616A292FA40.png

なおmetadataで CodePipeline コンソール上のどの選択肢がどのテンプレートに該当するのか確認も可能です。

https://github.com/aws/codepipeline-starter-templates/blob/757a303253757fdf08ee7386aad665753b718f29/templates/metadata/ci-build-gradle.json

ちなみに Continuous Integration - CI Build Gradle だとこんな感じです。
CodeBuild のコマンドだけであれば既存テンプレートのパラメータ変更だけでもいけそうなことがわかりますね。

https://github.com/aws/codepipeline-starter-templates/blob/757a303253757fdf08ee7386aad665753b718f29/templates/cloudformation/ci-build-gradle.yaml

テンプレートを少し改造してデプロイしてみたのですが、テンプレート開始の場合でも CodePiple コンソールから色々と選択が必要なだけあり、まずまずのパラメータ量です。

% rain deploy hoge.yaml hoge1111pipeline 
Enter a value for parameter 'ScheduleExpressionTimezone' "The timezone in which the event bridge scheduling expression is evaluated. For example, America/Los_Angeles | America/New_York | UTC" (default value: America/Los_Angeles): 
Enter a value for parameter 'BranchName' "The branch name to use with your CodeConnections connection.": main
Enter a value for parameter 'CICodeBuildSpec' "The CodeBuild project build spec gradle configuration" (default value: version: 0.2

phases:
   build:
     commands:
       - echo "Starting .NET build..."
       - dotnet build
       - echo ".NET build finished successfully!"
): 
Enter a value for parameter 'CodePipelineName' "The CodePipeline pipeline name that will build your gradle source project." (default value: SimpleScheduleGradleBuildService): hoge1111pipeline
Enter a value for parameter 'ConnectionArn' "The CodeConnections ARN for your source repository.":  

可能であればマネジメントコンソールからポチポチ出来たほうが楽ですね。

さいごに

本日は AWS CodePipeline の開始テンプレートの内容が GitHub リポジトリで公開されるようになったので確認してみました。

そう多くはない気もしますが、CodePipeline / CodeBuild なパイプラインをテンプレートで作成する機会には、こちらのリポジトリを思い出して参考にすると良さそうです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.